perm filename TRUTH[C,JRA] blob sn#021220 filedate 1973-01-19 generic text, type T, neo UTF8
00100	(CDEFUN FIND ('VARS 'PROP)
00200	   (MAPC  'UNASSIGN VARS)
00300	   (TRUE PROP))
00400	
00500	(CDEFUN TRUE (PROP "OPTIONAL" (CONTEXT CONTEXT))
00600	   (TRY-NEXT (GENERATE (TRUE1 PROP))))
00700	
00800	(CDEFUN TRUE1 (PROP) "AUX"(SUB POS)
00850	(PRINT PROP)
00900	   (RETPOS (FETCH PROP))
01000	   (COND ((TRY-NEXT (FETCHM !"(MEANING-OF ,PROP !>SUB)))
01100	          (TRUE1 SUB)))
01200	   (CSETQ POS (FETCHM !"(SUFFICES-FOR ,PROP !>SUB)))
01300	 :LP
01400	   (COND ((TRY-NEXT POS) (TRUE1 SUB) (GO 'LP))))
01500	
01600	(CDEFUN RETPOS (POS) 
01700	   (COND ((CDDR POS) (APPLY 'NOTE (CDDR POS))(AU-REVOIR))))
01800	
     

00100	(IF-NEEDED T-O-EXISTS (EXISTS !>V !'E)
00200	   (PROGBIND (CONS 'POS V)
00300	      (CSETQ POS (GENERATE (TRUE1 (PREFIX '/!/; V E))))
00400	     :LP
00500	      (TRY-NEXT POS '(ADIEU))
00600	      (AU-REVOIR T)
00700	      (GO 'LP)))
00800	
00900	(IF-NEEDED T-O-WHERE (WHERE !'G !'Q) "AUX"(P)
01000	   (CSETQ P (GENERATE (TRUE1 G)))
01100	 :LP
01200	   (COND ((TRY-NEXT P) (TRUE1 Q) (GO 'LP))))
01300	
01400	(IF-NEEDED T-O-NOT (NOT !'E)
01500	   (COND ((TRUE E) (ADIEU))) (ADIEU T))
01600	
01700	(IF-NEEDED T-O-AND (AND . !'L) 
01800	   (AND1 L))
01900	
02000	(CDEFUN AND1 (L)
02100	   (COND ((CDR L) "AUX"((P (GENERATE (TRUE1 (CAR L)))))
02200	          :TN (TRY-NEXT P '(RETURN NIL))
02300	              (AND1 (CDR L))
02400	              (GO 'TN))
02500	         (T (TRUE1 (CAR L)))))
02600	
02700	(IF-NEEDED T-O-= (= !>X !>Y)
02800	   (COND ((EQUAL X Y) (ADIEU T))))
02900	
03000	(IF-NEEDED T-O-PROT (PROTECTED !'X)
03100	    (COND ((CEVAL !"(PROTECTED ,X)) (ADIEU T))))
03200	
03300	(IF-NEEDED M-O-P-AND (MEANING-OF (POSSIBLE (AND . !'L)) (AND . !<M))
03400	   (CSETQ M ())
03500	   (FOR-EACH-ELEMENT G L
03600	      (CSETQ M (CONS !"(POSSIBLE ,G) M)))
03700	   (CSETQ M (REVERSE M))
03800	   (NOTE))
03900	
04000	(IF-NEEDED M-O-P-WHERE
04100	   (MEANING-OF (POSSIBLE (WHERE !'G !'Q)) (AND (POSSIBLE !,G) !,Q))
04200	   (NOTE))
04300	
04400	(IF-NEEDED M-O-P-EXISTS
04500	   (MEANING-OF (POSSIBLE (EXISTS !>V !'G)) (EXISTS !,V (POSSIBLE !,G)))
04600	   (NOTE))